# selenium 模块的基本使用

# 问题：selenium 莫宽二和爬虫之间具有怎样的关联？
#       - 便捷获取网站中动态加载的数据
#       - 便捷实现模拟登录

# 什么是 selenium 模块儿？
#       - 基于浏览器自动化的一个模块。

# selenium 使用流程：
#       - 01. 环境安装：pip install selenium
#       - 02. 下载浏览器驱动程序：（谷歌浏览器）
#               - 下载路径：http://chromedriver.storage.googleapis.com/index.html
#               - 驱动程序和浏览器的映射关系：https://blog.csdn.net/huilan_same/article/details/51896672
#       - 03. 实例化一个浏览器的驱动程序
#       - 04. 编写基于浏览器自动化的操作代码
#       - 05. 编写基于浏览器的自动化的操作代码
#               - 发起请求：get（url）
#               - 标签定位：find系列的方法
#               - 执行 js 程序：execute_script('jsCode')
#               - 前进，后退：back(), forward()

import time

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service

def run():
    global driver
    # 01. 初始化浏览器为chrome浏览器
    driver = webdriver.Chrome()
    # 初始化测览器 (利用chromedriver_py自动益测driver版本)
    # driver = webdriver.Chrome(executable_path=binary_path)

    # 02. 让浏览器发起一个指定的 url 请求，打开百度网页
    driver.get(r"http://www.baidu.com")

    # 模仿用户输入关键字
    # driver.find_element_by_xpath('//*[@id="kw"]').send_keys('python')
    # inputTag = driver.find_element_by_id("value")  # 利用ID查找
    # 改为：
    inputTag = driver.find_element(By.ID, "kw")
    inputTag.send_keys('Python')

    # 点击搜索
    # driver.find_element_by_id('su').click()
    driver.find_element(By.ID, 'su').submit()  # 提交表单
    # 等待3s
    time.sleep(3)

    # 退出浏览器
    driver.quit()


if __name__ == '__main__':
    # 01. 实例化一个谷歌浏览器对象（传入浏览器的驱动程序）
    # service = Service('./driver_path')  # 设定chromedriver路径
    # driver = webdriver.Chrome(service=service)
    # driver.get('https://www.baidu.com')  # 浏览百度网站首页
    # print(driver.title)  # 百度一下，你就知道
    run()
    time.sleep(3)


